1. Field of the Invention
The present invention generally relates to electronic circuits, specifically, the fabrication of integrated circuits such as microprocessors. More particularly, the present invention relates to computer-aided design (CAD) systems which lay out physical interconnections for logic circuits on an integrated circuit substrate using place and route tools.
2. Description of the Related Art
Modern electronic circuits use many different types of logic components or processing units to carry out numerous functions. In the early years of the semiconducting industry, these components were integrated circuits (ICs) with narrowly limited functionalities. Early small-scale integration ICs contained a few logic gates (AND gates, OR gates, NAND gates, NOR gates, XOR gates, etc.) amounting to a few dozen transistors. These gates are combined in Boolean fashion to implement particular logic circuits. Medium-scale integration increased the range of integrated logic available to counters and similar logic functions, and large-scale integration packed even larger logic functions, such as the first microprocessors, into a single chip. The current era of very large-scale integration (VLSI) offers complex processing and control capabilities with well over a million transistors on a single piece of silicon.
While many digital logic ICs became standard components which could be used to construct a variety of different microelectronic systems, there was a clear desire to provide more customized or tailor-made ICs for the electronics industry. As CMOS process technology has improved, and transistors continue to get smaller, it has become easier for engineers to design larger ICs that may be adapted to a customer""s specific needs; these types of ICs are referred to as application-specific integrated circuits (ASICs).
Integrated circuits are designed using computer-aided design (CAD) tools. The integrated circuit design process includes constructing the integrated circuit design out of simple circuits (standard cells) that are connected together electrically using wire interconnects. The standard cells and connections between them are stored in databases called xe2x80x9cnetlistsxe2x80x9d (i.e., lists of symbolic interconnections).
As part of the design process, the design information within a netlist is xe2x80x9cplaced and routedxe2x80x9d by the CAD tool. The CAD tool utilizes placing and routing processes (also called placers and routers) that are typically software programs executed on the CAD tool. The placer determines the optimum location of each standard cell within the integrated circuit layout on the semiconductor surface. The placement location is optimized to reduce the distance between standard cells that are electrically connected to each other by wire interconnects (e.g., input/output lines). This is done to minimize semiconductor area consumed by the integrated circuit and is also done to minimize the lengths of wire interconnects to reduce net capacitance within the design. The router optimizes the routing of input/output lines between connected standard cells so that areas of the integrated circuit layout do not become overly congested by input/output lines.
FIG. 1 illustrates a basic flow chart for designing an integrated circuit. In the first step, the designer identifies the primary functions needed for the IC to attain the desired behavior. These primary, high level functions are often specified in a CAD system using a well-known hardware description language (HDL) such as Verilog HDL. The designer simulates and verifies the behavior of the IC high-level design, encapsulated in HDL, using a simulator. The designer then creates the detailed logic for the design using a CAD program that synthesizes the logic from the HDL description using a technology or process-specific library 1. Library 1 consists of predefined macrocells and design rules for a specific fabrication process. Library 1 is usually provided by the ASIC vendor, and typically includes macrocells such as logic gates, sequential logic functions, adders, counters, multiplexers, and latches among other standard functions. Alternatively, the designer can specify the detailed logic directly as Boolean equations or as logic schematics using a schematic capture program.
In addition to using predefined macrocells from a process specific library, the designer may also use custom-patterned blocks, which may be manually crafted by a mask designer. Examples of such custom blocks include random-access memory (RAM), read-only memory (ROM), microcontrollers, and analog-to-digital (A/D) converters. Netlists between the macrocells and any custom blocks, as well as power, ground, and primary input/output (I/O) interconnections, are often automatically generated using a logic synthesis program.
The IC design is next verified at the logical level, using the functions and the timing characteristics supplied in the macrocell library, to determine whether the design is functionally correct and meets the desired timing requirements. This testing is typically performed using a logic simulation tool, such as Verilog, and other timing analysis tools. Such tools take into account the estimated capacitive loads of physical (mask) interconnections, macrocell delay times, sequential macrocell set-up and hold times and other factors important to achieving an accurate simulation of the IC function and performance. Since capacitive loading due to the physical interconnections is not known at this stage, estimates of the loading based on fanout and design size, among other factors, are used.
After logic simulation and timing analysis are successfully completed, the design logic macrocells are placed on a master array and the macrocells interconnections are physically routed according to the design netlist. Macrocell placement and routing are typically automated using a placement and route tool as mentioned above. After placement and routing (layout) are complete, accurate interconnect parasitics for all nets are extracted from the physical patterns and the resulting delays per net are back annotated to the timing verification tools. The designer then performs post-layout timing verification. If any timing violations are detected, the netlist is modified to remove such violations and placement and routing are incrementally performed on the modified netlist. If no timing violations are found in the post-layout verification, mask layers are generated for the design using special software.
In the next step, the foundry or an external mask supplier uses the generated pattern data to ultimately create wafer masks for the manufacture of the IC. The foundry then uses the resulting masks to fabricate the ICs. Once fabricated, either the foundry or the customer tests the ICs. If the test results are unsatisfactory, the design is modified, and all or a portion of the above process is repeated.
A short netlist for a simple circuit is shown in Table 1:
The netlist defines all of the interconnections between the components of the circuit. Each xe2x80x9csignalxe2x80x9d which interconnects two or more cells, or which represents an input or output for the entire circuit, is actually a node in the circuit which has been assigned a name. Thus the terms xe2x80x9csignalxe2x80x9d and xe2x80x9cnodexe2x80x9d are often used interchangeably. In the exemplary netlist shown in Table 1, signals A, B and CN1 are input nodes to the entire circuit, Y and CN are output nodes for the entire circuit, and nodes C, CA and CB are internal nodes.
In order to maintain a competitive edge in the market for microprocessors, it is imperative to reduce the time needed to productize the design, while at the same time increasing the speed and reliability of the microprocessor. Consequently, it becomes necessary for the designers to extract as much as possible from a given family of microprocessors. Advanced design techniques help only to a certain extent in extending the life of a particular family of microprocessors. Most of the design issues are already dealt with in the early stages of the particular product family development. To increase speed as well as reliability, while holding on to a majority of the old design, new and more robust CAD techniques are required. This need could not be more evident than in the case of microprocessors having a transistor count of greater than 20 million.
There are several approaches to retaining an old design while increasing speed and reliability, among them, adding a second level (e.g., a chip cache), moving to smaller transistor width process technology, or taking advantage of advanced tools to route the chip more efficiently. While each of the above approaches could be applied to a particular design, it is still necessary to retain the old design, i.e., the CAD tools that were used in the design process must be continued with in order to avoid extremely lengthy reworking. There is, however, nothing in the prior art which allows a designer to take advantage of new tools on top of old design tools.
It would, therefore, be desirable to devise an improved method of designing integrated circuits which allows the use of top-level routing while holding onto previous routes that had been routed using the old tools. It would be further advantageous if the method could perform transitions from one library format to another at any stage in the design process (including RC extraction, noise analysis, power and timing estimation, etc.), to allow a designer to take corrective steps as soon as possible and reduce the overall design cycle time. The new methodology should have a small turnaround time that would give the designer the option to experiment with different parameters like different routing directions for layers, power grid width, number of vias, etc.
It is therefore one object of the present invention to provide an improved method of designing integrated circuits.
It is another object of the present invention to provide such a method which uses a computer-aided design (CAD) system having place and route tools which provide interconnections between circuits using netlists.
It is yet another object of the present invention to provide a method of utilizing old netlists to preserve old routes while still taking advantage of new routing tools.
The foregoing objects are achieved in a method of designing an integrated circuit, generally comprising the steps of generating a first netlist for a first router design tool, abstracting the first netlist to mask selected old routes, and generating a second netlist for a second router design tool using new routing information which excludes the masked old routes. The first routing tool may use a format which is different from the format used by the second router design tool. In such a case, the channel abstraction may involve extracting all channel routes from the first format, and converting the extracted channel routes into the second format. New routes can be established using the second router design tool based on the second netlist, while preserving other old routes. Abstraction can be achieved by removing from the first netlist selected logic cells which are to be interconnected by the new routes. Those cells may be manually removed from the router tool session file using a text editor.
The above as well as additional objectives, features, and advantages of the present invention will become apparent in the following detailed written description.